﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Security.Cryptography;

namespace FrbaCommerce.Cambiar_Password
{
    public partial class FormCambiarPW : Form
    {

        
        private int user_id;

        public FormCambiarPW(int user_id)
        {
            InitializeComponent();
            this.user_id = user_id;
        }

        private void buttonCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void textBoxNuevaR_TextChanged(object sender, EventArgs e)
        {
            if (textBoxNueva.Text != textBoxNuevaR.Text || textBoxNueva.Text == "")
            {
                textBoxNuevaR.BackColor = Color.Red;
                buttonCambiar.Enabled = false;
            }
            else
            {
                textBoxNuevaR.BackColor = Color.White;
                buttonCambiar.Enabled = true;
            }
        }

        private void buttonCambiar_Click(object sender, EventArgs e)
        {
            Codigo_reutilizable.PasswordHash password = new Codigo_reutilizable.PasswordHash();

            SqlConnection con = Program.obtenerConexion();

            //Primero chequeo que la PW coincida

            if (password.getDbPasswd(user_id) != password.SHA256Encrypt(textBoxActual.Text))
            {
                MessageBox.Show("La contraseña actual es incorrecta", "Error",
              MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            
            //Ahora si, cambio la PW
            SqlCommand cambiarPW = new SqlCommand("UPDATE Monkey_Coders.Usuarios SET usr_passwd = '" + password.SHA256Encrypt(textBoxNueva.Text) +"' WHERE usuario_id = " + user_id, con);

            cambiarPW.ExecuteNonQuery();


            //Si la PW era 1234, habilito al usuario devuelta

            if (textBoxActual.Text == "1234")
            {
                SqlCommand reHab = new SqlCommand("UPDATE Monkey_Coders.Usuarios SET usr_habilitado = 1 WHERE usuario_id = " + user_id, con);
                reHab.ExecuteNonQuery();
            }

            MessageBox.Show("Contraseña cambiada con éxito!");
            this.Close();
        }

        private void textBoxNueva_TextChanged(object sender, EventArgs e)
        {

        }

    }
}
